package com.shihan.redis.springboot.demo.controller;

import com.alibaba.fastjson.JSONObject;
import com.shihan.redis.springboot.demo.entity.UserEntity;
import com.shihan.redis.springboot.demo.utils.RedisUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @Description
 * @Author shihan
 * @Date 2021/1/10 22:29
 * @Version 1.0
 */
@RestController
public class RedisController {

    @Autowired
    private RedisUtils redisUtils;

    /**
     * json 方式存储对象：SpringMVC 自动封装请求数据（注意请求的类型，已经 contentType 相关的内容）
     * @param userEntity
     * @return
     */
    @GetMapping("/addUser")
    public String addUser(UserEntity userEntity){
        redisUtils.setString("userEntity", JSONObject.toJSONString(userEntity));
        return "存储成功！";
    }

    /**
     * 取出 json 方式存储的对象，并反序列化为对象
     * @param key
     * @return
     */
    @GetMapping("/getUser")
    public UserEntity getUser(String key){
        String jsonObject = redisUtils.getString(key);
        return JSONObject.parseObject(jsonObject,UserEntity.class);
    }

}
